<!DOCTYPE html>
<html>
<meta name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!--<script src="./config.js?v=6"></script>-->
<!--<script type="text/javascript" src="/hk24/js/config.js"></script>-->
<head>
  <script>
    (function() {
      var hm = document.createElement('script')
      hm.src = 'https://hm.baidu.com/hm.js?923782b8812a9af8f21f9e8f135db8a2'
      var s = document.getElementsByTagName('script')[0]
      s.parentNode.insertBefore(hm, s)
    })()
  </script>
  <style>
    html, body {
      width: 100%;
      height: 100%;
      padding: 0;
      margin: 0;
    }

    .body {
      position: relative;
      height: 100%;
      background-color: #ffffff;
    }

    .header {
      height: 50px;
      line-height: 50px;
      text-align: center;
      font-size: 20px;
      color: #ffffff;
      background-color: #409eff;
    }

    .section {
      display: flex;
      min-height: calc(100vh - 100px);
      justify-content: center;
    }

    .footer {
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .footer .text {
      width: 80%;
      border-top: #cccccc 1px solid;
      line-height: 40px;
      text-align: center;
      color: #696969;
      font-size: 14px;
    }

    .section #stuInfo {
      padding-top: 7vh;
      width: 80%;
      text-align: center;
    }

    .section #home {
      padding-top: 13vh;
      width: 80%;
      text-align: center;
    }

    .section #home #code-tip {
      line-height: 60px;
      font-size: 18px;
      margin-left: 10px;
      cursor: pointer;
    }

    .section p {
      padding-left: 7%;
      padding-right: 7%;
      text-align: left;
      line-height: 25px
    }

    input {
      height: 25px;
      width: 80%;
    }

    input:nth-child(n + 1) {
      margin-top: 20px;
    }

    table, th, td {
      border: 1px solid black;
      border-collapse: collapse;
      font-size: 14px;
      text-align: center;
    }

    .stuInfo th, td {
      padding: 5px;
      text-align: center;
    }

    .score th, td {
      padding: 5px;
      width: 25%;
      text-align: center;
    }

    .el-loading-mask {
      position: absolute;
      z-index: 2000;
      background-color: hsla(0, 0%, 100%, .9);
      margin: 0;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      transition: opacity .3s
    }

    .el-loading-mask.is-fullscreen {
      position: fixed
    }

    .el-loading-mask.is-fullscreen .el-loading-spinner {
      margin-top: -25px
    }

    .el-loading-mask.is-fullscreen .el-loading-spinner .circular {
      height: 50px;
      width: 50px
    }

    .el-loading-spinner {
      top: 50%;
      margin-top: -21px;
      width: 100%;
      text-align: center;
      position: absolute
    }

    .el-loading-spinner .el-loading-text {
      color: #409eff;
      margin: 3px 0;
      font-size: 14px
    }

    .el-loading-spinner .circular {
      height: 42px;
      width: 42px;
      animation: loading-rotate 2s linear infinite
    }

    .el-loading-spinner .path {
      animation: loading-dash 1.5s ease-in-out infinite;
      stroke-dasharray: 90, 150;
      stroke-dashoffset: 0;
      stroke-width: 2;
      stroke: #409eff;
      stroke-linecap: round
    }

    .el-loading-spinner i {
      color: #409eff
    }

    .loader,
    .loader:after {
      border-radius: 50%;
      width: 10em;
      height: 10em;
    }

    .loader {
      margin: 20px auto;
      font-size: 3px;
      position: relative;
      text-indent: -9999em;
      border-top: 1.1em solid rgba(64, 158, 255, 0.2);
      border-right: 1.1em solid rgba(64, 158, 255, 0.2);
      border-bottom: 1.1em solid rgba(64, 158, 255, 0.2);
      border-left: 1.1em solid #409eff;
      -webkit-transform: translateZ(0);
      -ms-transform: translateZ(0);
      transform: translateZ(0);
      -webkit-animation: load8 1.1s infinite linear;
      animation: load8 1.1s infinite linear;
    }

    @-webkit-keyframes load8 {
      0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
      }
      100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
      }
    }

    @keyframes load8 {
      0% {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
      }
      100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
      }
    }

    button {
      position: relative;
      display: inline-block;
      font-weight: 400;
      white-space: nowrap;
      text-align: center;
      box-shadow: 0 2px 0 rgb(0 0 0 / 2%);
      cursor: pointer;
      transition: all .3s cubic-bezier(.645, .045, .355, 1);
      user-select: none;
      touch-action: manipulation;
      font-size: 14px;
      border-radius: 2px;
      color: rgba(0, 0, 0, .85);
      height: auto;
      padding: 8px 24px;
      border-color: #409eff;
      color: #fff;
      background: #409eff;
      width: 80%;
      margin-top: 20px;
    }

    @media screen and (min-width: 1336px) {
      .section #home {
        padding-top: 10vh;
        width: 40%;
      }

      input {
        height: 30px;
        width: 80%;
      }
    }

    @media screen and (max-height: 667px ) {
      .section #home {
        padding-top: 3vh;
      }
    }
  </style>
</head>
<body>

<div class="body">
  <div class="header">
    茂名市中考成绩查询服务平台
  </div>
  <div class="section">
    <div id="home" style="display: none">
      <h2>茂名市中考成绩查询</h2>
      <input type="text" name="form" placeholder="请输入考生号" required/>
      <input type="password" name="form" placeholder="请输入密码" required/>
      <div style="display: flex; flex-direction: row; width: 90%;">
        <input type="text" name="form" placeholder="请输入验证码" required
               style="flex: 1;margin-left: 10%"/>
        <img id="code" style="width: 100px; height: 60px; display: none"
             onclick="verificationCode()"
             alt=""/>
        <div id="code-tip" onclick="verificationCode()">获取验证码</div>
      </div>
      <button type="button" onclick="getStuInfo()">查 询</button>
      <p>
        <strong>"考生号"为准考证上14位考生号<br/>"密码"为考生身份证后4位，字母请用大写<br/>
          "密码"含符号，请用英文符号<br/>点击查询若无法正常显示，可能是系统忙，请避开高峰期查询。查询结果仅供参考</strong>
      </p>
    </div>
    <div id="stuInfo" style="width: 40%; margin-top: 20px; margin-left: 10px; display: none">
      <h2 style="text-align: center">2024年茂名市中考成绩查询结果</h2>
      <div>
        <table cellspacing="0" cellpadding="0" border="0" style="width: 95%" class="stuInfo">
          <tbody>
          <tr>
            <td rowspan="1" colspan="1">
              <div>报名点</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="bmd"></div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1">
              <div>姓 名</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="xm"></div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1">
              <div>考生号</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="zkzh"></div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1" style="width: 25%">
              <div>证件号</div>
            </td>
            <td rowspan="1" colspan="1" style="width: 75%">
              <div id="zjno"></div>
            </td>
          </tr>
          </tbody>
        </table>
        <table cellspacing="0" cellpadding="0" border="0" style="width: 95%; margin-top: 5vh"
               class="score">
          <tbody>
          <tr style="background-color: #cccccc; font-weight: 600">
            <td rowspan="1" colspan="1">
              <div>科目名称</div>
            </td>
            <td rowspan="1" colspan="1">
              <div>分数或等级</div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1">
              <div>生物学（含实操考试）分数</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="sw"></div>
            </td>
          </tr>
	  <tr>
            <td rowspan="1" colspan="1">
              <div>生物学（含实操考试）等级</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="zf2"></div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1">
              <div>生物学实验考试</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="swsy"></div>
            </td>
          </tr>
          <tr>
            <td rowspan="1" colspan="1">
              <div>地理分数</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="dl"></div>
            </td>
          </tr>
	  <tr>
            <td rowspan="1" colspan="1">
              <div>地理等级</div>
            </td>
            <td rowspan="1" colspan="1">
              <div id="zf1"></div>
            </td>
          </tr>
          </tbody>
        </table>
          </tbody>
        </table>
      </div>
      <button type="button" onclick="back()">返 回</button>
    </div>
  </div>
  <div class="footer">
    <div class="text">
      广东省茂名市中考成绩查询服务平台 版权所有
    </div>
  </div>
  <div class="el-loading-mask" id="mask" style="background-color: rgba(0, 0, 0, 0.8);
  display: none">
    <div class="el-loading-spinner">
      <div class="loader"></div>
      <p class="el-loading-text">正在请求中</p></div>
  </div>
</div>
</body>
<!--https://jscompress.com/ --><!--html-->
<!--https://tool.oschina.net/jscompress/-->
<script>
  var URL = '/hk24'
  var oh = 1721365200000
  var it = 3

  function request(option) {
    if (String(option) !== '[object Object]') return undefined
    option.method = option.method ? option.method.toUpperCase() : 'GET'

    option.data = option.data || {}
    var formData = []
    for (var key in option.data) {
      formData.push(''.concat(key, '=', option.data[key]))
    }
    option.data = formData.join('&')

    option.url = URL + option.url
    if (option.method === 'GET') {
      option.url += location.search.length === 0 ? ''.concat('?', option.data) : ''
    }

    var xhr = new XMLHttpRequest()
    if (!navigator.userAgent.indexOf('Trident')) {
      xhr.responseType = option.responseType || 'json'
    }
    xhr.timeout = 10000
    xhr.onreadystatechange = function() {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          if (option.success && typeof option.success === 'function') {
            option.success(xhr.response)
          }
        } else {
          if (option.error && typeof option.error === 'function') {
            option.error()
          }
        }
      }
    }
    xhr.ontimeout = function() {
      console.log('timeout')
    }
    xhr.open(option.method, option.url, true)
    if (option.method === 'POST') {
      xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    }
    xhr.send(option.method === 'POST' ? option.data : null)
  }

  function getDomById(id) {
    return document.getElementById(id)
  }

  function getRandomNumber(max) {
    return Math.floor(Math.random() * max)
  }

  function clientTip() {
    alert('服务器繁忙')
  }

  var interval = false
  var randomCode = ''

  function verificationCode() {
    var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
    var rc = ''
    for (var i = 0; i < 4; i++) {
      rc += arr[getRandomNumber(arr.length)]
    }
    randomCode = rc
    setVerificationCode(rc)
  }

  var cxtjFscx = ['bmh', 'zkzh', 'zjno', 'xm', 'zf1', 'zf2', 'yw', 'sxkg', 'sxzg', 'sx', 'yykg', 'yyzg', 'yy'
    , 'wkkg', 'wkzg', 'wkzf', 'lkkg', 'lkzg', 'lkzf', 'lhsy', 'ty', 'yhjf', 'df', 'wl', 'hx', 'ls', 'dl', 'sw'
    , 'yyts', 'wlsy', 'hxsy', 'swsy'
    , 'bmd'
    , 'yinyue', 'ms', 'xxjs', 'zh',
  ]
  var tipDict = {
    0: '考生号',
    1: '密码',
    2: '验证码'
  }

  var loading = false

  function getStuInfo() {
    var form = document.getElementsByName('form')
    for (let i = 0, len = form.length; i < len; i++) {
      if (!form[i].value) {
        alert('请输入' + tipDict[i])
        return
      }
    }
    if (!/^\d{14}$/.test(form[0].value)) {
      alert('考生号输入有误')
      return
    }
    if (form[1].value.length !== 4) {
      alert('密码输入有误')
      return
    }
    if (randomCode !== form[2].value.toLocaleUpperCase()) {
      alert('验证码错误')
      return
    }

    var params = {}
    params.userName = form[0].value
    params.password = md5(form[1].value)
    params.randomCode = form[2].value

    var mask = getDomById('mask')
    if (oh > +new Date()) {
      alert('查分系统尚未开放!请耐心等待!')
      return
    }

    //TODO 设置不要重复提交
    /**加载标识*/
    mask.style.display = ''
    var func = function() {
      loading = true
      request({
        url: '/queryScore.do',
        method: 'GET',
        data: params,
        success: function(res) {
          if (typeof res === 'string') {
            res = JSON.parse(res)
          }
          if (res.code === 200) {
            var data = res.data
            if (sessionStorage) {
              sessionStorage.setItem('d_hk', JSON.stringify(data))
            }
            showScore(data)
          } else {
            alert(res.data)
          }
          mask.style.display = 'none'
          loading = false
        },
        error: function(err) {
          clientTip()
          interval = false
          mask.style.display = 'none'
          loading = false
        }
      })
    }

    if (!loading) {
      setTimeout(() => {
        func()
      }, getRandomNumber(it) * 1000)
    }
  }

  function showScore(data) {
    for (var i = 0, len = cxtjFscx.length; i < len; i++) {
      if (getDomById(cxtjFscx[i])) {
        getDomById(cxtjFscx[i]).innerHTML = data[cxtjFscx[i]]
      }
    }
    var home = getDomById('home')
    home.style.display = 'none'
    var stuInfo = getDomById('stuInfo')
    stuInfo.style.display = ''
  }

  var md5 = function(string) {
    var x = Array()
    var k, AA, BB, CC, DD, a, b, c, d
    var S11 = 7, S12 = 12, S13 = 17, S14 = 22
    var S21 = 5, S22 = 9, S23 = 14, S24 = 20
    var S31 = 4, S32 = 11, S33 = 16, S34 = 23
    var S41 = 6, S42 = 10, S43 = 15, S44 = 21
    string = uTF8Encode(string)
    x = convertToWordArray(string)
    a = 0x67452301
    b = 0xEFCDAB89
    c = 0x98BADCFE
    d = 0x10325476
    for (k = 0; k < x.length; k += 16) {
      AA = a
      BB = b
      CC = c
      DD = d
      a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478)
      d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756)
      c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB)
      b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE)
      a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF)
      d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A)
      c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613)
      b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501)
      a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8)
      d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF)
      c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1)
      b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE)
      a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122)
      d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193)
      c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E)
      b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821)
      a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562)
      d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340)
      c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51)
      b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA)
      a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D)
      d = GG(d, a, b, c, x[k + 10], S22, 0x2441453)
      c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681)
      b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8)
      a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6)
      d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6)
      c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87)
      b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED)
      a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905)
      d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8)
      c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9)
      b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A)
      a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942)
      d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681)
      c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122)
      b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C)
      a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44)
      d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9)
      c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60)
      b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70)
      a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6)
      d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA)
      c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085)
      b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05)
      a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039)
      d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5)
      c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8)
      b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665)
      a = II(a, b, c, d, x[k + 0], S41, 0xF4292244)
      d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97)
      c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7)
      b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039)
      a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3)
      d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92)
      c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D)
      b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1)
      a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F)
      d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0)
      c = II(c, d, a, b, x[k + 6], S43, 0xA3014314)
      b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1)
      a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82)
      d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235)
      c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB)
      b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391)
      a = addUnsigned(a, AA)
      b = addUnsigned(b, BB)
      c = addUnsigned(c, CC)
      d = addUnsigned(d, DD)
    }
    var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d)
    return tempValue.toLowerCase()
  }

  var rotateLeft = function(lValue, iShiftBits) {
    return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits))
  }

  var addUnsigned = function(lX, lY) {
    var lX4, lY4, lX8, lY8, lResult
    lX8 = (lX & 0x80000000)
    lY8 = (lY & 0x80000000)
    lX4 = (lX & 0x40000000)
    lY4 = (lY & 0x40000000)
    lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF)
    if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8)
    if (lX4 | lY4) {
      if (lResult & 0x40000000) {
        return (lResult ^ 0xC0000000 ^ lX8 ^ lY8)
      } else {
        return (lResult ^ 0x40000000 ^ lX8 ^ lY8)
      }
    } else {
      return (lResult ^ lX8 ^ lY8)
    }
  }

  var F = function(x, y, z) {
    return (x & y) | ((~x) & z)
  }

  var G = function(x, y, z) {
    return (x & z) | (y & (~z))
  }

  var H = function(x, y, z) {
    return (x ^ y ^ z)
  }

  var I = function(x, y, z) {
    return (y ^ (x | (~z)))
  }

  var FF = function(a, b, c, d, x, s, ac) {
    a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac))
    return addUnsigned(rotateLeft(a, s), b)
  }

  var GG = function(a, b, c, d, x, s, ac) {
    a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac))
    return addUnsigned(rotateLeft(a, s), b)
  }

  var HH = function(a, b, c, d, x, s, ac) {
    a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac))
    return addUnsigned(rotateLeft(a, s), b)
  }

  var II = function(a, b, c, d, x, s, ac) {
    a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac))
    return addUnsigned(rotateLeft(a, s), b)
  }

  var uTF8Encode = function(string) {
    string = string.replace(/\x0d\x0a/g, '\x0a')
    var output = ''
    for (var n = 0; n < string.length; n++) {
      var c = string.charCodeAt(n)
      if (c < 128) {
        output += String.fromCharCode(c)
      } else if ((c > 127) && (c < 2048)) {
        output += String.fromCharCode((c >> 6) | 192)
        output += String.fromCharCode((c & 63) | 128)
      } else {
        output += String.fromCharCode((c >> 12) | 224)
        output += String.fromCharCode(((c >> 6) & 63) | 128)
        output += String.fromCharCode((c & 63) | 128)
      }
    }
    return output
  }

  var wordToHex = function(lValue) {
    var WordToHexValue = '', WordToHexValueTemp = '', lByte, lCount
    for (lCount = 0; lCount <= 3; lCount++) {
      lByte = (lValue >>> (lCount * 8)) & 255
      WordToHexValueTemp = '0' + lByte.toString(16)
      WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2)
    }
    return WordToHexValue
  }

  var convertToWordArray = function(string) {
    var lWordCount
    var lMessageLength = string.length
    var lNumberOfWordsTempOne = lMessageLength + 8
    var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64
    var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16
    var lWordArray = Array(lNumberOfWords - 1)
    var lBytePosition = 0
    var lByteCount = 0
    while (lByteCount < lMessageLength) {
      lWordCount = (lByteCount - (lByteCount % 4)) / 4
      lBytePosition = (lByteCount % 4) * 8
      lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition))
      lByteCount++
    }
    lWordCount = (lByteCount - (lByteCount % 4)) / 4
    lBytePosition = (lByteCount % 4) * 8
    lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition)
    lWordArray[lNumberOfWords - 2] = lMessageLength << 3
    lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29
    return lWordArray
  }

  var randomArbitrary = function(min, max) {
    return (Math.random() * (max - min)) + min
  }

  var randomInt = function(min, max) {
    min = Math.ceil(min)
    max = Math.floor(max)
    return Math.floor(Math.random() * (max - min)) + min
  }

  var randomColor = function(min, max) {
    var r = randomInt(min, max)
    var g = randomInt(min, max)
    var b = randomInt(min, max)
    return 'rgb(' + r + ',' + g + ',' + b + ')'
  }

  var generateCode = function(codeText) {
    var canvas = document.createElement('canvas')
    var ctx = canvas.getContext('2d')

    var width = 120
    var height = 40
    canvas.width = width
    canvas.height = height

    ctx.fillStyle = randomColor(180, 255)
    ctx.globalAlpha = 0.7
    ctx.fillRect(0, 0, width, height)
    ctx.globalAlpha = 1

    var codeLen = codeText.length
    var targetArr = codeText.split('')
    for (let i = 0; i < codeLen; i++) {
      var targetChar = targetArr[i]

      ctx.font = 'bold 30px serif'
      ctx.textBaseline = 'middle'
      ctx.fillStyle = randomColor(1, 100)

      var transX = (width / codeLen) * (i + 0.2)
      var transY = height / 2
      var scaleX = randomArbitrary(0.8, 1)
      var scaleY = randomArbitrary(0.8, 1)
      var deg = Math.PI / 180
      var rotate = randomArbitrary(-60, 60)

      ctx.translate(transX, transY)
      ctx.scale(scaleX, scaleY)
      ctx.rotate(deg * rotate)

      ctx.fillText(targetChar, 0, 0)
      ctx.setTransform(1, 0, 0, 1, 0, 0)

    }

    return canvas.toDataURL()
  }

  function setVerificationCode(codeText) {
    var data = generateCode(codeText)
    var codeImage = getDomById('code')

    if (data) {
      interval = true
      getDomById('code').style.display = ''
      getDomById('code-tip').style.display = 'none'
      codeImage.src = data
    }
  }

  function back() {
    sessionStorage.removeItem('d_hk')
    getDomById('stuInfo').style.display = 'none'
    getDomById('home').style.display = ''
  }

  window.onload = function() {
    if (sessionStorage) {
      var d = sessionStorage.getItem('d_hk')
      if (d) {
        showScore(JSON.parse(d))
      } else {
        // verificationCode()
        getDomById('home').style.display = ''
      }
    } else {
      // verificationCode()
      getDomById('home').style.display = ''
    }

    /*-----------------------------------*/

    /**监听软键盘弹出**/
    var footer = document.getElementsByClassName('footer')[0]
    var u = window.navigator.userAgent
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 //android终端
    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) //ios终端
    if (isAndroid) {
      var originalHeight =
        document.documentElement.clientHeight || document.body.clientHeight
      window.onresize = function() {
        var resizeHeight =
          document.documentElement.clientHeight || document.body.clientHeight
        if (resizeHeight - 0 < originalHeight - 0) {
          footer.style.display = 'none'
        } else {
          footer.style.display = ''
        }
      }
      document.getElementById('stuInfo').style.width = '100%'
    }

    if (!(/Chrome/.test(u) && /Google Inc/.test(u))) {
      if (isiOS) {
        document.body.addEventListener('focusin', () => {
          footer.style.display = 'none'
        })
        document.body.addEventListener('focusout', () => {
          footer.style.display = ''
        })
        document.getElementById('stuInfo').style.width = '100%'
      }
    }
  }

</script>
</html>
